// const gulp = require('gulp');
// const terser = require('gulp-terser');
// const fs = require('fs-extra');

// // 需要排除的路径
// const excludedPaths = [
//     'node_modules/**',
//     'dist/**',
//     'temp/**',
//     '.git/**',
//     '.vscode/**',
//     '.idea/**',
//     'dataIn/待处理TXT/*.txt',
//     'outExe/*/**',
//     '.vs/**',
//     // '**/*.log',
//     '.cache/**',
//     'gulpfile.js',
//     'webpack.config.js',
//     'yarn.lock',
//     'yarn-error.log',
//     '.gitignore',
//     '.npmrc',
//     '.yarnrc',
//     'prettier.config.js',
//     '.prettier*',
//     '.eslintignore',
//     '.eslintrc*',
//     '.babelrc*',
//     'tsconfig.json',
//     'jest.config.js'
// ];

// // 清理任务
// gulp.task('clean', async function(done) {
//     const { deleteSync } = await import('del');
//     if (!fs.existsSync('dist')) {
//         fs.mkdirSync('dist');
//     }
//     deleteSync(['dist/**/*', '!dist/.vscode/**', '!dist/.git/**', '!dist/.git'], { force: true });
//     done();
// });

// // JS压缩任务
// gulp.task('js', function() {
//     return gulp.src([
//         '**/*.js',
//         '!node_modules/**',
//         '!dist/**',
//         '!gulpfile.js',
//         '!webpack.config.js'
//     ], { base: './' })
//         .pipe(terser({
//             compress: {
//                 drop_console: false,
//                 drop_debugger: true,
//                 dead_code: true,
//                 unused: true
//             },
//             mangle: true,
//             format: {
//                 comments: false
//             }
//         }))
//         .pipe(gulp.dest('dist'));
// });

// // 复制其他文件
// gulp.task('copy', function() {
//     return gulp.src(['**/*', '!**/*.js', ...excludedPaths.map(path => '!' + path)], { base: './' })
//         .pipe(gulp.dest('dist'));
// });

// // 监视文件变化
// gulp.task('watch', function() {
//     gulp.watch(['**/*.js'], gulp.series('js'));
//     gulp.watch(['**/*', '!**/*.js', ...excludedPaths.map(path => '!' + path)], gulp.series('copy'));
// });

// // 默认任务
// gulp.task('default', gulp.series('clean', gulp.parallel('js', 'copy')));



 


// GPT优化的=========================================

const gulp=require('gulp');
const terser=require('gulp-terser');
const fs=require('fs-extra');

// 需要排除的路径
const excludedPaths=[
  'node_modules/**',
  'node_modules/*/**',
  'dist/**',
  'temp/**',
  'TEMP/**' ,
  '.git/**',
  '.vscode/**',
  '.idea/**',
  'dataIn/待处理TXT/*.txt',
  'outExe/*/**',
  '.vs/**',
  // '**/*.log',
  '.cache/**',
  'gulpfile.js',
  'webpack.config.js',
  'yarn.lock',
  'yarn-error.log',
  '.gitignore',
  '.npmrc',
  '.yarnrc',
  'prettier.config.js',
  '.prettier*',
  '.eslintignore',
  '.eslintrc*',
  '.babelrc*',
  'tsconfig.json',
  'jest.config.js',
  "txt/**"
];

// 清理任务
gulp.task('clean',async function(done) {
  const { deleteSync }=await import('del'); // 动态导入 del 模块
  if(!fs.existsSync('dist')) {
    fs.mkdirSync('dist');
  }
  // 使用 del 删除文件，并返回 Promise 来确保任务完成
  deleteSync(['dist/**/*','!dist/.vscode/**','!dist/.git/**','!dist/.git','.gitignore'],{ force: true });
  done(); // 确保调用 done 来标记任务完成
});

// JS压缩任务
gulp.task('js',function() {
  return gulp.src([
    '**/*.js',
    '!node_modules/**',
    '!dist/**',
    '!gulpfile.js',
    '!webpack.config.js'
  ],{ base: './' })
    .pipe(terser({
      compress: {
        drop_console: false,
        drop_debugger: true,
        dead_code: true,
        unused: true
      },
      mangle: true,
      format: {
        comments: false
      }
    }))
    .pipe(gulp.dest('dist'));
});

// 复制其他文件
gulp.task('copy',function() {
  return gulp.src(['**/*','!**/*.js',...excludedPaths.map(path => '!'+path)],{ base: './' })
    .pipe(gulp.dest('dist'));
});

// 监视文件变化
gulp.task('watch',function() {
  gulp.watch(['**/*.js'],gulp.series('js')); // 监视 JavaScript 文件
  gulp.watch(['**/*','!**/*.js',...excludedPaths.map(path => '!'+path)],gulp.series('copy')); // 监视其他文件
});

// 默认任务
gulp.task('default',gulp.series('clean',gulp.parallel('js','copy')));
